package conductores;


public class EstadoInicial2 implements IEstadoInicial {

	@Override
	public void execute(Board board) {

	 System.out.println("Generamos el estado inicial complejo:El conductor enlaza la dejada de un usuario, con la recogida de otro usuario, cercano a ese punto ");
	    	//asignamos al usuario el conductor mas cercano o algun conductor que deje a el último usuario cerca de esa posición
	 		//No se tiene en cuenta la hora de llegada del conductor
	        
	         int DistMin;
	         int Distancia;
	         Conductor MasCercano;
	         int idUser;
	         while(board.pendientes.size()>0){
	        	 idUser=board.pendientes.get(0);
	        	 MasCercano =board.conductores.get(0);//iniciamos el primer conductor como el mas cercano
	        	  DistMin= (Context.SIZE*2); //distancia a reducir será mayor a la diagonal del cuadrado
	        	  for(Conductor cond:board.getConductores()){
	        		 Distancia=cond.CalculaDistanciaRutafinalUsuario(idUser) ; 
	        		 if(Distancia<DistMin){
	        		 MasCercano=cond;
	        		 DistMin=Distancia;
	        		 }
	        		 
	        	 }
	        	 board.opMeter(MasCercano, board.pendientes.get(0), MasCercano.ruta.size(), MasCercano.ruta.size()+1);
	        	
	         }
	         

	         System.out.println(" -----------------------------Queda así");
	         board.Lapo2();
	         System.out.println(" --------------------------------------");
	     	

	}
	

}
